package com.ldx.java_chatroom.component;

import org.springframework.stereotype.Component;
import org.springframework.web.socket.WebSocketSession;

import java.util.concurrent.ConcurrentHashMap;
//这个类用于管理userId yu WebsocketSession的关系
@Component
public class OnlineUserManager {
    private ConcurrentHashMap<Integer, WebSocketSession> sessions = new ConcurrentHashMap<>();

    public void online(int userId,WebSocketSession session){
        //检查重复登录的情况
        if(sessions.get(userId) == null){
            sessions.put(userId,session);
        }

    }
    public void offline(int userId,WebSocketSession session){
        //依旧检查重复登录的情况 这是很有必要的
        //因为 websocket 建立连接和断开连接无论是否记录到hashmap都是要调用那四个方法 hashmap就是在那里维护的
        if(sessions.get(userId)!= null){
            sessions.remove(userId);
        }

    }
    public WebSocketSession getSession(int userId){
        return sessions.get(userId);
    }

}
